home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
pc
/
LOGIC Apple II 5.25" Library - DOS Part 3
/
DOS077A.dsk
/
BASE CONVERT.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
2KB
|
89 lines
5 HOME
10 PRINT " BASE CONVERSION "
20 PRINT : PRINT
30 PRINT "MODES: 1 - HEX > DECIMAL"
40 PRINT " 2 - DECIMAL > HEX"
42 PRINT " 3 - OCTAL > DECIMAL"
45 PRINT " 4 - DECIMAL > OCTAL"
50 PRINT : PRINT "WHICH MODE";
60 INPUT M
65 IF M < >1 AND M < >2 AND M < >3 AND M < >4 THEN 50
70 ON M GOSUB 1000,2000,3000,4000
80 PRINT "MORE DATA (Y/N) -- ";
90 GET A$
100 IF A$ < >"Y" THEN 9999
110 HOME : GOTO 30
1000 HOME
1010 PRINT "ENTER HEX--";: INPUT H$
1020 L = LEN(H$)
1030 S = 0
1040 FOR J = 1 TO L
1050 B$ = MID$ (H$,J,1)
1060 IF B$ < >"A" THEN 1080
1070 N = 10: GOTO 1190
1080 IF B$ < >"B" THEN 1100
1090 N = 11: GOTO 1190
1100 IF B$ < >"C" THEN 1120
1110 N = 12: GOTO 1190
1120 IF B$ < >"D" THEN 1140
1130 N = 13: GOTO 1190
1140 IF B$ < >"E" THEN 1160
1150 N = 14: GOTO 1190
1160 IF B$ < >"F" THEN 1180
1170 N = 15: GOTO 1190
1180 N = VAL( MID$ (H$,J,1))
1190 S = S +N *16 ^(L -J)
1200 NEXT J
1210 PRINT : PRINT "DECIMAL = ";S
1220 PRINT : RETURN
2000 HOME
2010 PRINT "ENTER DECIMAL ";: INPUT D
2020 D$ = STR$(D)
2030 L = LEN(D$)
2040 S$ = " "
2050 FOR J = 1 TO L
2060 Q = INT(D/16)
2070 R = 16 *(D/16 - INT(D/16))
2080 IF R < >10 THEN 2100
2090 R$ = "A": GOTO 2210
2100 IF R < >11 THEN 2120
2110 R$ = "B": GOTO 2210
2120 IF R < >12 THEN 2140
2130 R$ = "C": GOTO 2210
2140 IF R < >13 THEN 2160
2150 R$ = "D": GOTO 2210
2160 IF R < >14 THEN 2180
2170 R$ = "E": GOTO 2210
2180 IF R < >15 THEN 2200
2190 R$ = "F": GOTO 2210
2200 R$ = STR$(R)
2210 S$ = R$ +S$
2215 D = Q
2220 NEXT J
2230 PRINT : PRINT "HEX = ";S$
2240 PRINT : RETURN
3000 HOME
3010 PRINT "ENTER OCTAL";: INPUT O
3020 O$ = STR$(O)
3030 L = LEN(O$)
3040 S = 0
3050 FOR J = L -1 TO 0 STEP -1
3060 N = INT(O/10 ^J +.5)
3070 S = S +N *8 ^J
3080 O = O -N *10 ^J
3090 NEXT J
3100 PRINT : PRINT "DECIMAL = ";S
3110 PRINT : RETURN
4000 HOME
4010 PRINT "ENTER DECIMAL";: INPUT D
4020 D$ = STR$(D)
4030 L = LEN(D$)
4040 S = 0
4050 FOR J = L -1 TO 0 STEP -1
4060 N = INT(D/8 ^J +.5)
4070 S = S +N *10 ^J
4080 D = D -N *8 ^J
4090 NEXT J
4100 PRINT : PRINT "OCTAL = ";S
4110 PRINT : RETURN
9999 END